
package br.com.skpharma.transaction;


import java.util.*;

import br.com.skpharma.dao.Bd;
import br.com.skpharma.factory.FactoryCliente;
import br.com.skpharma.vo.ClienteVO;
import br.com.skpharma.vo.EnderecoVO;
import br.com.skpharma.vo.PerfilVO;

public class TransactionCliente {

	private ClienteVO cliente;
	private List listCliente;
	private Bd banco;
	
	/**
	 * 
	 */
	public TransactionCliente() {
		super();
		cliente = new ClienteVO();
		try{
			banco = Bd.getInstance();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		// TODO Stub de construtor gerado automaticamente
	}

	public ClienteVO getClienteVO() {
		return cliente;
	}

	public void setClienteVO(ClienteVO cliente) {
		this.cliente = cliente;
	}

	public void remover(int id) throws Exception {
		banco.beginTransaction();
			FactoryCliente factory = new FactoryCliente();
			cliente.setCod(id);
			factory.setClienteVO(cliente);
			factory.delete();
		banco.commit();
	}

	public void inserir(ClienteVO clienteVO) throws Exception {
		banco.beginTransaction();
			FactoryCliente factory = new FactoryCliente();
			
			cliente.setNome(clienteVO.getNome());
			cliente.setLogin(clienteVO.getLogin());
			cliente.setSenha(clienteVO.getSenha());
			cliente.setDataNasc(clienteVO.getDataNasc());
			cliente.setCpf(clienteVO.getCpf());
			cliente.setCelular(clienteVO.getCelular());
			cliente.setTelefone(clienteVO.getTelefone());
			cliente.setEmail(clienteVO.getEmail());
			cliente.setEnderecoVO(clienteVO.getEnderecoVO());
			cliente.setPerfilVO(clienteVO.getPerfilVO());
			
			factory.setClienteVO(cliente);
			factory.insert();
		banco.commit();
	}

	public void atualizar(ClienteVO clienteVO) throws Exception {
		banco.beginTransaction();
			FactoryCliente factory = new FactoryCliente();
			
			cliente.setNome(clienteVO.getNome());
			cliente.setLogin(clienteVO.getLogin());
			cliente.setSenha(clienteVO.getSenha());
			cliente.setDataNasc(clienteVO.getDataNasc());
			cliente.setCpf(clienteVO.getCpf());
			cliente.setCelular(clienteVO.getCelular());
			cliente.setTelefone(clienteVO.getTelefone());
			cliente.setEmail(clienteVO.getEmail());
			cliente.setEnderecoVO(clienteVO.getEnderecoVO());
			cliente.setPerfilVO(clienteVO.getPerfilVO());
			
			factory.setClienteVO(cliente);
			factory.update();
		banco.commit();
	}


	public void obterClienteVO(String campo, String valor) throws Exception{
		banco.beginTransaction();
			FactoryCliente factory = new FactoryCliente();
			factory.setClienteVO(new ClienteVO());
			listCliente = factory.getClienteVO(campo,valor);
		banco.commit();
	}
	
	public void obterListaClienteVO() throws Exception{
		banco.beginTransaction();
			FactoryCliente factory = new FactoryCliente();
			factory.setClienteVO(new ClienteVO());
			listCliente = factory.getListaCliente();
		banco.commit();
	}
	
	/**
	 * @return
	 */
	public List getListClienteVO() {
		return listCliente;
	}

	/**
	 * @param list
	 */
	public void setListClienteVO(List list) {
		listCliente = list;
	}

}
